home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / More Source / Libraries / SAT 2.3b4 / Demo ƒ / Collision demo ƒ / sApple.p < prev    next >
Text File  |  1995-01-16  |  1KB  |  53 lines

  1. { Apple sprite for SATcollision }
  2.  
  3. unit sApple;
  4.  
  5. interface
  6.  
  7.     uses
  8. {$IFC UNDEFINED THINK_PASCAL}
  9.         Types, Quickdraw,
  10. {$ENDC}
  11.         SAT;
  12.  
  13.     var
  14.         theSound: Handle;
  15.         appleFace: FacePtr;
  16.  
  17.     procedure InitApple;
  18.     procedure SetupApple (me: SpritePtr);
  19.     procedure HandleApple (me: SpritePtr);
  20.  
  21. implementation
  22.  
  23.     procedure InitApple;
  24.     begin
  25.         theSound := SATGetSound(128);
  26.         appleFace := SATGetFace(132);
  27.     end;
  28.  
  29.     procedure SetupApple (me: SpritePtr);
  30.     begin
  31.         me^.speed.h := 1 + SATRand(3);
  32.         me^.kind := -1;                    {Enemy kind}
  33.         me^.face := appleFace;
  34.         SetRect(me^.hotRect, 0, 0, 32, 32);
  35.         me^.task := @HandleApple;        {Must have a handling routine}
  36.     end;
  37.  
  38.     procedure HandleApple (me: SpritePtr);
  39.     begin
  40.         if me^.kind <> -1 then {Something hit us!}
  41.             begin
  42.                 SATSoundPlay(theSound, 1, false);
  43.                 me^.task := nil; {Go away}
  44.             end;
  45. {Move}
  46.         me^.position.h := me^.position.h + me^.speed.h;
  47.         if me^.position.h > gSAT.offSizeH - 16 then
  48.             me^.speed.h := -1 - SATRand(3);
  49.         if me^.position.h < -16 then
  50.             me^.speed.h := 1 + SATRand(3);
  51.     end;
  52.  
  53. end.